meta:
  id: ars_parse_object
  endian: be
seq:
  - id: header
    type: header_str
  - id: body
    type: object_list_str
  - id: empty
    type: u1
    repeat: eos
types:
  header_str:
    seq:
      - id: service_id
        type: u2
      - id: method_id
        type: u2
      - id: length
        type: u4
      - id: client_id
        type: u2
      - id: session_id
        type: u2
      - id: protocol_version
        type: u1
      - id: interface_version
        type: u1
      - id: message_type
        type: u1
      - id: return_code
        type: u1

  object_list_str:
    seq:
      - id: crc_h
        type: u4
      - id: crc_l
        type: u4
      - id: length
        type: u4
      - id: sqc
        type: u4
      - id: data_id
        type: u4
      - id: timestamp_nanoseconds
        type: u4
      - id: timestamp_seconds
        type: u4
      - id: timestamp_syncstatus
        type: u1
      - id: eventdataqualifier
        type: u4
      - id: extendedqualifier
        type: u1
      - id: objectlist_numofobjects
        type: u1
      - id: objectlist_objects
        type: object_src
        repeat: expr
        repeat-expr: 50
  
  object_src:
    seq:
      - id: u_statussensor
        type: u2
      - id: u_id
        type: u4
      - id: u_age
        type: u2
      - id: u_statusmeasurement
        type: u1
      - id: u_statusmovement
        type: u1
      - id: u_position_invalidflags
        type: u2
      - id: u_position_reference
        type: u1
      - id: u_position_x
        type: f4
      - id: u_position_x_std
        type: f4
      - id: u_position_y
        type: f4
      - id: u_position_y_std
        type: f4
      - id: u_position_z
        type: f4
      - id: u_position_z_std
        type: f4
      - id: u_position_covariancexy
        type: f4
      - id: u_position_orientation
        type: f4
      - id: u_position_oientation_std
        type: f4
      - id: u_existence_invalidflags
        type: u1
      - id: u_existence_probability
        type: f4
      - id: u_existence_ppv
        type: f4
      - id: u_classification_car
        type: u1
      - id: u_classification_truck
        type: u1
      - id: u_classification_motorcycle
        type: u1
      - id: u_classification_bicycle
        type: u1
      - id: u_classification_pedestrian
        type: u1
      - id: u_classification_animal
        type: u1
      - id: u_classification_hazard
        type: u1
      - id: u_classification_unknown
        type: u1
      - id: u_classification_overdrivable
        type: u1
      - id: u_classification_underdrivable
        type: u1
      - id: u_dynamics_absvel_invalidflags
        type: u1
      - id: f_dynamics_absvel_x
        type: f4
      - id: f_dynamics_absvel_x_std
        type: f4
      - id: f_dynamics_absvel_y
        type: f4
      - id: f_dynamics_absvel_y_std
        type: f4
      - id: f_dynamics_absvel_covariancexy
        type: f4
      - id: u_dynamics_relvel_invalidflags
        type: u1
      - id: f_dynamics_relvel_x
        type: f4
      - id: f_dynamics_relvel_x_std
        type: f4
      - id: f_dynamics_relvel_y
        type: f4
      - id: f_dynamics_relvel_y_std
        type: f4
      - id: f_dynamics_relvel_covariancexy
        type: f4
      - id: u_dynamics_absaccel_invalidflags
        type: u1
      - id: f_dynamics_absaccel_x
        type: f4
      - id: f_dynamics_absaccel_x_std
        type: f4
      - id: f_dynamics_absaccel_y
        type: f4
      - id: f_dynamics_absaccel_y_std
        type: f4
      - id: f_dynamics_absaccel_covariancexy
        type: f4
      - id: u_dynamics_relaccel_invalidflags
        type: u1
      - id: f_dynamics_relaccel_x
        type: f4
      - id: f_dynamics_relaccel_x_std
        type: f4
      - id: f_dynamics_relaccel_y
        type: f4
      - id: f_dynamics_relaccel_y_std
        type: f4
      - id: f_dynamics_relaccel_covariancexy
        type: f4
      - id: u_dynamics_orientation_invalidflags
        type: u1
      - id: u_dynamics_orientation_rate_mean
        type: f4
      - id: u_dynamics_orientation_rate_std
        type: f4
      - id: u_shape_length_status
        type: u4
      - id: u_shape_length_edge_invalidflags
        type: u1
      - id: u_shape_length_edge_mean
        type: f4
      - id: u_shape_length_edge_std
        type: f4
      - id: u_shape_width_status
        type: f4
      - id: u_shape_width_edge_invalidflags
        type: u1
      - id: u_shape_width_edge_mean
        type: f4
      - id: u_shape_width_edge_std
        type: f4
      